﻿using Helper.Infrastructure.Login;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;

using Helper.Core.Entity;
using Helper.Infrastructure;
using Helper.Infrastructure.Session;
namespace Helper.Tests.Infrastructure
{
    
    
    /// <summary>
    ///Classe com todos os testes para o login
    ///to contain all LoginRequestTest Unit Tests
    ///</summary>
    [TestClass()]
    public class LoginRequestTest 
    {        
        UserSession _userSession;
        User _currentUser;
        /// <summary>
        /// Método para inicializa a classe de testes do login
        /// </summary>
        [TestInitialize()]
        public void InitializeLoginRequestTest() 
        {
            ///Recupera a sessão do usuário atual
            _userSession = UserSession.GetInstance;
            ///Inicializa o objeto usuário é define
            ///suas propriedades
            User user = new User();
            user.Name = "NomeTest";
            user.Password = "SenhaTest";
            ///Construtor
            LoginRequestConstructor(user);
            ///Inicializa a classe de testes do login            
        }
        /// <summary>
        /// Contrutor da Classe
        /// </summary>
        /// <param name="User">Usuário para o login</param>
        /// Para haver testes no login é necessário primeiro ter um usuário
        
        [TestMethod()]
        public LoginRequest LoginRequestConstructor(User user)
        {
            _currentUser = user;
            return new LoginRequest();
        }
        [TestMethod()]
        [ExpectedException(typeof(NullReferenceException),"Falha no Login")]
        public LoginRequest LoginTest() 
        {
            return null;
        }
    }
}
